package com.xiaokai.domain.strategy.model.entity;

import com.xiaokai.domain.strategy.model.vo.RuleLogicCheckTypeVO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * Author:yang
 * Date:2024-08-24 20:41
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class RuleActionEntity<T extends RuleActionEntity.RaffleEntity> {

    private String code = RuleLogicCheckTypeVO.ALLOW.getCode();

    private String info = RuleLogicCheckTypeVO.ALLOW.getInfo();

    private String ruleModel;

    private T data;

    static public class RaffleEntity{

    }


    /**
     * 抽奖前
     */
    @Data
    @Builder
    @AllArgsConstructor
    @NoArgsConstructor
    static public class RaffleBeforeEntity extends RaffleEntity{
        private Long strategyId;

        // 规则权重值key
        private String ruleWeightValueKey;

        private Integer awardId;
    }
    /**
     * 抽奖中
     */
    static public class RaffleCenterEntity extends RaffleEntity{

    }
    /**
     * 抽奖后
     */
    static public class RaffleAfterEntity extends RaffleEntity{

    }


}
